package com.ktjiaoyu.crm.service;

import com.ktjiaoyu.crm.entity.Right;
import com.ktjiaoyu.crm.entity.Role;
import com.ktjiaoyu.crm.entity.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 业务---用户
 * @author Administrator
 */
public interface IUserService {
    /**
     * 登录
     * @param usrName 用户名
     * @param usrPassword 密码
     * @return 用户
     */
    public User login(String usrName, String usrPassword);

    /**
     * 保存
     * @param user 用户
     * @return 用户
     */
    public User saveUser(User user);

    /**
     * 删除
     * @param usrId 用户ID
     */
    public void  delUser(Long usrId);

    /**
     * 获取用户
     * @param usrId 用户id
     * @return 用户
     */
    public User getUser(Long usrId);

    /**
     * 分页查询
     * @param usrName 用户姓名
     * @param roleId 角色id
     * @param pageable 分页条件
     * @return 集合
     */
    public Page<User> findUsers(String usrName, Long roleId, Pageable pageable);

    /**
     * 用户名查询
     * @param usrName 用户名
     * @return 用户
     */
    public User getUserByName(String usrName);

    /**
     * 获取所有角色
     * @return 角色
     */
    public List<Role> findAllRoles();

    /**
     * 获取用户-->角色
     * @param user
     * @return 角色
     */
    public Role getRoleByUser(User user);

    /**
     * 保存角色
     * @param role 角色
     */
    public void saveRole(Role role);

    /**
     * 获取角色
     * @param roleName 角色姓名
     * @return 角色
     */
    public List<Role> findRoles(String roleName);

    /**
     * 获取所有权限
     * @return 权限
     */
    public List<Right> findAllRights();

    /**
     * 获取用户-->角色-->权限
     * @param role 角色
     * @return 权限
     */
    public List<Right> findRightsByRole(Role role);

    /**
     * 查找所有用户
     * @return 用户集合
     */
    public List<User> findAllUsers();

}
